﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;


namespace SisEagleBO
{

    /// <summary>
    /// Classe BO: Business Objects
    /// Criador: Rafael da Silva França
    /// Criada em 08/09/2012
    /// Contato: rafael.sfranca@gmail.com
    /// </summary>
    public partial class ImagensBO
    {

        // Atributos
        private SisEagleDO.SisEagleDO objDO = null;
        private StringBuilder strSql = null;

        //Métodos
        /// <summary>
        /// Seleciona todos os registros e retorna um DataSet.
        /// </summary>
        /// <returns>DataSet</returns>
        public DataSet FindAll()
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                " FROM         Imagens INNER JOIN " +
                "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros com ordenação e retorna um DataSet.
        /// </summary>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindAll(string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                " FROM         Imagens INNER JOIN " +
                "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros com filtro.
        /// </summary>
        /// <param name="_filtro ("id_campo = 1 AND campo1 = 'texto' OR campo2 LIKE 'r%'")">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindByWhere(string _filtro)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                " FROM         Imagens INNER JOIN " +
                "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");
                strSql.Append(" WHERE ( " + _filtro + " ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros com filtro e ordenação.
        /// </summary>
        /// <param name="_filtro ("id_campo = 1 AND campo1 = 'texto' OR campo2 LIKE 'r%'")">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindByWhere(string _filtro, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                " FROM         Imagens INNER JOIN " +
                "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");
                strSql.Append(" WHERE ( " + _filtro + " ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por CodImagem.
        /// </summary>
        /// <param name="_CodImagem">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_CodImagem(int _CodImagem)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                 " FROM         Imagens INNER JOIN " +
                 "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");
                strSql.Append(" WHERE (  CodImagem =   " + _CodImagem + "  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por CodImagem.
        /// </summary>
        /// <param name="_CodImagem">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_CodImagem(int _CodImagem, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                " FROM         Imagens INNER JOIN " +
                "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");
                strSql.Append(" WHERE (  CodImagem =   " + _CodImagem + "  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por codPrduto.
        /// </summary>
        /// <param name="_codPrduto">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_codPrduto(int _codPrduto)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                " FROM         Imagens INNER JOIN " +
                "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");
                strSql.Append(" WHERE (  codPrduto =   " + _codPrduto + "  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por codPrduto.
        /// </summary>
        /// <param name="_codPrduto">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_codPrduto(int _codPrduto, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                " FROM         Imagens INNER JOIN " +
                "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");
                strSql.Append(" WHERE (  codPrduto =   " + _codPrduto + "  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Imagem.
        /// </summary>
        /// <param name="_Imagem">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Imagem(string _Imagem)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                " FROM         Imagens INNER JOIN " +
                "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");
                strSql.Append(" WHERE (  Imagem =   '" + _Imagem + "'  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por Imagem.
        /// </summary>
        /// <param name="_Imagem">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_Imagem(string _Imagem, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                " FROM         Imagens INNER JOIN " +
                "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");
                strSql.Append(" WHERE (  Imagem =   '" + _Imagem + "'  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por DescricaoImagem.
        /// </summary>
        /// <param name="_DescricaoImagem">filtro da consulta</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_DescricaoImagem(string _DescricaoImagem)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                " FROM         Imagens INNER JOIN " +
                "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");
                strSql.Append(" WHERE (  DescricaoImagem =  '" + _DescricaoImagem + "'  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Seleciona todos os registros por DescricaoImagem.
        /// </summary>
        /// <param name="_DescricaoImagem">filtro da consulta</param>
        /// <param name="_orderby">campo de ordenação</param>
        /// <returns>DataSet</returns>
        public DataSet FindBy_DescricaoImagem(string _DescricaoImagem, string _orderby)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" SELECT ");
                // colunas
                strSql.Append("  Imagens.DescricaoImagem, Imagens.Imagem, Imagens.codPrduto, Imagens.CodImagem, Produtos.Descricao, Produtos.NomeProduto " +
                " FROM         Imagens INNER JOIN " +
                "    Produtos ON Imagens.codPrduto = Produtos.CodProduto ");
                strSql.Append(" WHERE (  DescricaoImagem =  '" + _DescricaoImagem + "'  ) ");
                strSql.Append(" ORDER BY " + _orderby);

                objDO = new SisEagleDO.SisEagleDO();

                // executa consulta e retorna um DataSet
                return objDO.GetDataSet(strSql.ToString(), "Imagens");
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Insere os registros do banco e retorna o número de linhas afetadas.
        /// </summary>
        /// <param name="_vo">objetos vo do banco</param>
        /// <returns>int</returns>
        public int Insert(SisEagleVO.ImagensVO _vo)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" INSERT INTO  Imagens  ");
                strSql.Append(" (");

                strSql.Append(" codPrduto, ");
                strSql.Append(" Imagem, ");
                strSql.Append(" DescricaoImagem ");
                strSql.Append(" ) ");
                strSql.Append(" VALUES (");
                strSql.Append(" " + _vo.codPrduto + " , ");
                strSql.Append(" '" + _vo.Imagem + "' , ");
                strSql.Append("  '" + _vo.DescricaoImagem + "'  )");


                objDO = new SisEagleDO.SisEagleDO();

                // executa comando e retorna o número de linhas afetadas.
                return objDO.ExecutaQuery(strSql.ToString());
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Atualiza os registros do banco e retorna o número de linhas afetadas.
        /// </summary>
        /// <param name="_vo">objetos vo do banco</param>
        /// <returns>int</returns>
        public int Update(SisEagleVO.ImagensVO _vo)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" UPDATE  Imagens  ");
                strSql.Append(" SET ");

                strSql.Append("   codPrduto =   " + _vo.codPrduto + " ,  ");
                strSql.Append("   Imagem =   '" + _vo.Imagem + "' ,  ");
                strSql.Append("   DescricaoImagem =  '" + _vo.DescricaoImagem + "'   ");

                strSql.Append(" WHERE ( CodImagem =   " + _vo.CodImagem + "  ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa comando e retorna o número de linhas afetadas.
                return objDO.ExecutaQuery(strSql.ToString());
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }

        /// <summary>
        /// Deleta os registros do banco e retorna o número de linhas afetadas.
        /// </summary>
        /// <param name="_vo">objetos vo do banco</param>
        /// <returns>int</returns>
        public int Delete(SisEagleVO.ImagensVO _vo)
        {
            try
            {
                strSql = new StringBuilder();
                strSql.Append(" DELETE FROM Imagens  ");
                strSql.Append(" WHERE ( CodImagem = " + _vo.CodImagem + " ) ");

                objDO = new SisEagleDO.SisEagleDO();

                // executa comando e retorna o número de linhas afetadas.
                return objDO.ExecutaQuery(strSql.ToString());
            }
            catch (Exception er)
            {
                throw new Exception("Aconteceu um erro:" + er.Message.ToString());
            }
            finally
            {
                strSql = null;
            }
        }



        //public SisEagleVO.ImagensVO PegaImagemProduto(string p)
        //{
        //    throw new NotImplementedException();
        //}
    }



}
